//#include<iostream>
//#include<algorithm>
//using namespace std;
//bool MAX(string a,string b){
//	return a.size() < b.size();
//}
//int main(){
//	string s1="haha",s2="hehee";
//	string m = max(s1,s2,MAX);
//	cout << m;
//	return 0;
//}
//p5738
//#include<iostream>
//#include<algorithm>
//using namespace std;
//int main(){
//	double llmax = 0,h = 0;
//	int n,m,t,k,lmin = 10,sum = 0,lmax = 0;
//	cin >> n >> m;
//	for(int i = 0; i < n; i++){
//		lmin = 10;
//		lmax = 0;
//		sum = 0;
//		for(int j = 0; j < m; j++){
//			cin >> t;
//			sum += t;
//			lmax = max(lmax,t);
//			lmin = min(lmin,t);
//		}
//		h = 1.0 *(sum - lmax -lmin) / (m - 2);
//		llmax = max(llmax,h);
//	} 
//	printf("%.2lf",llmax);
//	return 0;
//}
//P2127
//#include<iostream>
//using namespace std;
//int main(){
//	int n,sum = 0;
//	cin >> n;
//	for(int j = 2; j < n; j++){
//		sum = 0;
//		for(int i = 1; i <= j / 2; i++){
//			if(j % i == 0) sum += i;		
//	}
//	if(sum == j)cout << j << endl;
//}
//	return 0;
//}
//b2131
//#include<iostream>
//#include<cctype>
//#include<string>
//using namespace std;
//int main(){
//	string s1,s2,s3;
//	int n,count = 0;
//	cin >> n;
//	for(int i = 0; i < n; i++) {
//		cin >> s1 >> s2 >> s3;
//		if(stod(s2) >= 37.5 && s3 == "1"){cout << s1 << endl;count++;}
//	}
//	cout << count ;
//
//	
//	return 0;
//}
//B2132
//#include<iostream>
//#include<cmath>
//bool is_prime(int i){
//	for(int j = 2; j <= sqrt(i); j++){
//		if(i % j == 0)return 0;
//	} 
//	return 1;
//}
//using namespace std;
//int main(){
//	int n ,m,j,k=0,arr[10002]={0},flag;
//	cin >> n;
//	for(int i = 2; i + 2<= n; i++){
//		if(is_prime(i)==1 && is_prime(i+2)== 1){
//			cout << i << ' ' << i+2 << endl;
//		}
//	}
//	return 0 ;
//}
//B2136
//#include<iostream>
//#include<algorithm>
//#include<string>
//#include<cmath>
//using namespace std;
//bool is_prime(int i){
//	for(int j = 2; j <= sqrt(i); j++){
//		if(i % j == 0) return 0;
//	}
//	return 1;
//}
//bool is_huiwen(int i){
//	string s1 = to_string(i);
//	string s2 = s1;
//	reverse(s1.begin(),s1.end());
//	if(s1 == s2) return 1;
//	else return 0;
//}
//int main(){
//	int n,m,k=0,count = 0;
//	cin >> n;
//	for(int i = 11; i <= n; i++){
//		if(is_prime(i) && is_huiwen(i)){
//			count++; 
//		}
//	}
//	cout << count;
//	return 0;
//} 
#include<iostream>
#include<string>
#include<cmath>
#include<algorithm>
using namespace std;
bool is_prime(int i){
	for(int j = 2; j <= sqrt(i); j++){
		if(i % j == 0)return false;
	}
	return true;
}
bool is_huishu(int i){
	if(is_prime(i)){
		string s1 = to_string(i);
		reverse(s1.begin(),s1.end());
		if(is_prime(stoi(s1))) return true;
		else return false;
	}
	else return false;
}
int main(){
	int m , n ,count = 0;
	cin >>  m >> n;
	for(int i = m; i <= n; i++){
		if(is_huishu(i)){
			if(count == 0) cout << i ; 
			else cout << ','<< i ;
			count ++;
		}
	}
	if(count == 0)cout << "No";
	return 0;
}
